﻿using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.PB;
using Coldairarrow.Util;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Coldairarrow.Business.PB
{
    public partial interface IPB_ProductionOrderDetailBusiness
    {
        Task<PageResult<PB_ProductionOrderDetail>> GetDataListAsync(PageInput<ConditionDTO> input);
        /// <summary>
        /// 联合查询生产订单信息,所有ID获取对应名称
        /// </summary>
        /// <param name="input">条件信息</param>
        /// <returns></returns>
        Task<PageResult<PB_ProductionOrderDetailListDTO>> GetDataListShowAllNameAsync(PB_ProductionOrderDetailInput input);
        Task<PB_ProductionOrderDetail> GetTheDataAsync(string id);
        Task AddDataAsync(PB_ProductionOrderDetail data);
        Task AddDataAsyncs(List<PB_ProductionOrderDetail> data);
        Task UpdateDataAsync(PB_ProductionOrderDetail data);
        Task DeleteDataAsync(List<string> ids);
        Task<List<Entity.DTO.PB_ProductionOrderDetailDTO>> GetDataListAsyncs(string ParentId);
        /// <summary>
        /// 扫码获取任务单明细信息
        /// </summary>
        /// <param name="OrderDetailQrCode"></param>
        /// <returns></returns>
        Task<PB_ProductionOrderDetailData> GetTheDataOrderDetail(string OrderDetailQrCode);

        /// <summary>
        /// 扫码获取任务单明细信息(输入)
        /// </summary>
        /// <param name="OrderDetailQrCode"></param>
        /// <returns></returns>
        Task<PB_ProductionOrderDetailData> GetTheDataOrderDetailInput(string OrderDetailQrCode);

        /// <summary>
        /// 选择项目获取任务单物料信息 朱庆龙 2022/3/10
        /// </summary>
        /// <param name="input"></param>
        /// <param name="ProjectId"></param>
        /// <returns></returns>
        Task<PageResult<ProjectProductionOrderList>> GetProjectProductionOrderList(PageInput<ProSubvConditionDTO> input, string ProjectId);
    }

    public class PB_ProductionOrderDetailInput : PageInput<ConditionDTO> 
    {
        /// <summary>
        /// 主表ID-清单ID
        /// </summary>
        public string ParentId { get; set; }

    }
}